home *** CD-ROM | disk | FTP | other *** search
/ Scene Storm / Scene Storm - Volume 1.iso / coding / c / amiexpress / source / doors / auxed / emacs.c < prev   
Encoding:
C/C++ Source or Header  |  1992-12-26  |  2.1 KB  |  107 lines

  1. #include <exec/exec.h>
  2. #include <dos/dos.h>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include "work:romconf/doorheader.h"
  6.  
  7. #define AWAIT_LOGON    0
  8. #define SYSOP_LOGON    1
  9. #define LOCAL_LOGON    2
  10. #define REMOTE_LOGON    3
  11. #define GOODBYE_LOGON    4
  12. #define SUSPEND_LOGON    5
  13. int Whence_The_Logon;
  14. void EditEmacs(char *filename);
  15. int mynode;
  16. char temp[200];
  17. char GSTR3[200];
  18. char GSTR2[200];
  19. #define gu getuserstring
  20. #define sm sendmessage
  21. #define pm prompt
  22. void CloseAux(BPTR tfh);
  23. BPTR OpenAux(void);
  24. main(int argc,char *argv[])
  25. {
  26.    register int i;
  27.    if(argc!=2)
  28.    {
  29.       printf("AUXED version 1.0 written by Joseph Hodge\n");
  30.       printf("\n");
  31.       exit(0);
  32.    }
  33.    Register(argv[1][0]-'0');
  34.    mynode=argv[1][0]-'0';
  35.    Whence_The_Logon=GetInfo(BB_LOGONTYPE);
  36.    gu(temp,BB_MAINLINE);
  37.    sr(temp);
  38.    i=0;
  39.    while(temp[i]!=' ' && temp[i]!='\0') i++;
  40.    while(temp[i]!='\0' && temp[i]==' ') i++; 
  41.    EditEmacs(&temp[i]);
  42.    ShutDown();
  43.    end();
  44. }
  45. void EditEmacs(char *filename)
  46. {
  47.  FILE *f;
  48.  struct Task *task;
  49.  BPTR fh;
  50.  sprintf(GSTR3,"\tEditEmacs %s\n",filename);
  51.  //CallersLog(GSTR3);
  52.  
  53.  if(f=fopen(filename,"r")) {
  54.      fclose(f);
  55.      sprintf(GSTR3,"ram:Node%dEmacs",mynode);
  56.         if(f=fopen(GSTR3,"w")) {
  57.          BPTR fh;
  58.  
  59.             fprintf(f,"emacs %s\n",filename);
  60.             fprintf(f,"endcli\n");
  61.          fclose(f);
  62.             if(fh=OpenAux()) {
  63.              sm("H",0);
  64.                 //ConPutStr(&Xinfo,"\nUser is using EMACS...");
  65.                 
  66.                  sprintf(GSTR2,"failat 100\nc:execute %s\nendcli\n",GSTR3);
  67.                     Execute(GSTR2,fh,0);
  68.                 CloseAux(fh);
  69.             }
  70.          sprintf(GSTR3,"ram:Node%dEmacs",mynode);
  71.             DeleteFile(GSTR3);
  72.         }
  73.     } else {
  74.      sprintf(GSTR2,"The file %s does not exist!",filename);
  75.         sm("",1);sm(GSTR2,1);
  76.     }
  77. }
  78.  
  79.  
  80. BPTR OpenAux(void)
  81. {
  82.  char str[100];
  83.  BPTR tfh;
  84.  
  85.  if(Whence_The_Logon==REMOTE_LOGON) {
  86.         PurgeLineEnd();
  87.         sprintf(str,"AUX%u:",mynode);
  88.     } else
  89.         strcpy(str,"CNN:S*/0/1/640/199/LocalAUX");
  90.  
  91.  if(!(tfh=Open(str,MODE_OLDFILE))) {
  92.         if(Whence_The_Logon==REMOTE_LOGON) {
  93.             PurgeLineStart();
  94.         }
  95.         sm("",1);sm("The ",0);
  96.         sm(str,0);
  97.         sm(" handler can't be opened!",1);
  98.     }
  99.  return(tfh);
  100. }
  101.  
  102. void CloseAux(BPTR tfh)
  103. {
  104.  Close(tfh);
  105. }
  106.  
  107.